# output.manifest

- **Type:** `string | boolean`
- **Default:** `false`

Whether to generate a manifest file that contains information of all assets, and the mapping relationship between [entry module](/config/source/entry) and assets.

When `output.manifest` is set to `true`, Rsbuild will generate a `manifest.json` file after building. When the value of `output.manifest` is a string, it will be used as the manifest file name or path.

## Output

The default output file structure of manifest is:

```ts
type FilePath = string;

type ManifestList = {
  entries: {
    /** The key is the entry name, from Rsbuild's source.entry config. */
    [entryName: string]: {
      initial?: {
        js?: FilePath[];
        css?: FilePath[];
      };
      async?: {
        js?: FilePath[];
        css?: FilePath[];
      };
      /** HTML files related to the current entry */
      html?: FilePath[];
      /** other assets (e.g. png、svg、source map) related to the current entry */
      assets?: FilePath[];
    };
  };
  /** Flatten all assets */
  allFiles: FilePath[];
};
```

## Basic Example

Enable asset manifest:

```js
export default {
  output: {
    manifest: true,
  },
};
```

After building, there will be a `dist/manifest.json` file:

```json
{
  "allFiles": [
    "/static/css/index.a11cfb11.css",
    "/static/js/index.c586cd5e.js",
    "/index.html",
    "/static/js/index.c586cd5e.js.LICENSE.txt"
  ],
  "entries": {
    "index": {
      "initial": {
        "js": ["/static/js/index.c586cd5e.js"],
        "css": ["/static/css/index.a11cfb11.css"]
      },
      "assets": ["/static/js/index.c586cd5e.js.LICENSE.txt"],
      "html": ["/index.html"]
    }
  }
}
```

## Set Path

`output.manifest` can be a path relative to the `dist` directory, for example, output to `dist/static/my-manifest.json`:

```js
export default {
  output: {
    manifest: './static/my-manifest.json',
  },
};
```
